package com.hsmpay.mobile.dao.terminal;

import com.hsmpay.common.dao.BaseDao;
import com.hsmpay.mobile.pojo.terminal.TchannelM;

import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;

/**
 * 终端通道  dao接口
 */
public interface TchannelMDao<Entity extends Serializable, Query extends Object> extends BaseDao<Entity, Query> {
    /**
     * 根据终端代码  手机版正在使用的通道
     *
     * @param code
     * @param roleId
     * @return
     * @throws SQLException
     */
    public TchannelM searchMobileZZSYByCode(Integer code, Long roleId) throws SQLException;

    /**
     * 根据 code 查询通道商户号列表
     *
     * @param code
     * @param roleId
     * @return
     * @throws SQLException
     */
    public List<TchannelM> searchMobileTCListByCode(Integer code, Long roleId) throws SQLException;
    /**
     *  * 根据 code roleId limit 查询通道商户号列表
     *
     * @param code 通道
     * @param roleId 终端角色
     * @param limit 限额
     * @return
     * @throws SQLException
     */
    public List<TchannelM> searchMobileTCListByCodes(Integer code, Long roleId,double limit) throws SQLException;

    /**
     * 根据 code 查询通道商户号列表
     * @param code
     * @param roleId
     * @return
     * @throws SQLException
     */
    public List<TchannelM> searchMobileTCListByCodeOrderByUseTime(Integer code,Long roleId)throws SQLException;
    /**
     * 更新code 修改更新第三方参数
     *
     * @param status
     * @param budengId
     * @param code
     * @param otherParam
     * @return
     * @throws Exception
     */
    public int updateStatusByCode(Integer status, Long budengId, Integer code, Long roleId) throws SQLException;

    /**
     * 根据终端代码  查询通道商户号
     *
     * @param code
     * @return
     * @throws Exception
     */
    public TchannelM searchTchannelMByCode(Integer code, String mcode, String tcode) throws SQLException;

    /**
     * 修改密钥
     *
     * @param id
     * @param miyao
     * @return
     * @throws SQLException
     */
    public int updateMobileTcOtherById(Long id, String miyao) throws SQLException;

    /**
     * 更新 终端时间
     * @param id
     * @throws SQLException
     */
    public int updateTchannelMUseTime(Long id)throws SQLException;

    /**
     * 更新 商户号  使用金额
     * @param id
     * @param useTotal
     * @param status
     * @return
     * @throws SQLException
     */
    public int updateTchannelMUseMoney(Long id,Double useTotal,Integer status)throws SQLException;

    /**
     * 通过userId查找
     * @param userId
     * @return
     */
    public TchannelM searchTchannelMByUserId(Long userId) throws SQLException;
}
